Microservices: inzicht in wat microservices zijn en wat de voordelen ervan zijn

Continue levering (CD) is de praktijk waarbij automatisering wordt gebruikt om software in korte iteraties vrij te geven

Compass gratis uitproberen

Improve your developer experience, catalog all services, and increase software health.

Tot ongeveer 2013 bouwden bedrijven meestal bedrijfssoftware door toepassingen te bouwen als afzonderlijke eenheden met grote codebases, een zogenaamde monolithische architectuur. Naarmate software complexer werd en de populariteit van cloud computing toenam, werd deze aanpak minder praktisch.

Door de komst van software-as-a-service-producten (toepassingen die via de cloud worden geleverd) konden bedrijven providers, zoals Amazon Web Services, gebruiken om snel nieuwe servers te creëren en redundantie toe te voegen. Dit zorgde ervoor dat de services online bleven tijdens upgrades. Het luidde ook een nieuw tijdperk van snelheid en behendigheid in. Gebruikers verwachtten snelle upgrades en verbeteringen, wat bedrijven ertoe aanzette hun ontwikkelingsprocessen te veranderen.

Bedrijven begonnen toepassingen op te splitsen in kleinere, onafhankelijke services of microservices. In plaats van een berichteninbox toe te voegen als onderdeel van een monolithisch e-commerceplatform, kunnen ze bijvoorbeeld een aparte microservice aanmaken voor deze functionaliteit.

Tegelijkertijd begonnen ontwikkelaars te werken in kleinere, meer gespecialiseerde groepen die individuele services aanpasten en verbeterden zonder dat dit een risico vormde voor de gehele toepassing. Deze groepen namen ook vaak de verantwoordelijkheid voor de werking van hun code, een model genaamd DevOps. Om deze veranderingen mogelijk te maken, begonnen projectmanagers nieuwe methodologieën te ontwikkelen, zoals Agile, waarbij projecten worden opgedeeld in kleinere, frequentere releases.  

Lees verder voor meer informatie over de samenstelling van toepassingen op basis van microservices. Ontdek ook hoe Compass van Atlassian de complexiteit vermindert en tegelijkertijd ontwikkelaars in staat stelt om de vruchten te plukken van dit architecturale model.

Wat zijn microservices?

Een microservice is een functie die verantwoordelijk is voor een enkel stukje logica (behalve voor domein-microservices, zoals hieronder wordt uitgelegd). Meerdere microservices worden gecombineerd om gedistribueerde toepassingen aan te maken, zoals Jira Software.

Er zijn drie soorten microservices:

  1. 1

    Domain microservices loosely couple services with related functionality. 

  2. 2

    integratie-microservices wordt de interactie tussen niet-gerelateerde toepassingen vereenvoudigd. 

  3. 3

    unit-of-work-microservices worden enkelvoudige functies behandeld. 

Microservices communiceren met elkaar via API's (Application Programming Interfaces). Ontwikkelaars die aan individuele services werken, kunnen de interne werking van de andere microservices ook leren beheersen. Dit biedt nog een voordeel ten opzichte van een monolithische architectuur.

Op microservices gebaseerde architectuur biedt veel voordelen, maar kan zaken ook een stuk ingewikkelder maken. Daarom heeft Atlassian Compass ontwikkeld, waarmee bedrijven het schalen kunnen vereenvoudigen. Compass is een ontwikkelaarsplatform dat alle informatie over engineering-output en teamsamenwerking samenbrengt op één centrale, doorzoekbare locatie.

De belangrijkste principes van microservices

Microservices-based architecture has several distinguishing features. Developers can develop and deploy their services independently using the languages and technologies that suit their components. 

Communication between microservices is API-based, allowing access to data from various sources without modification. Individual services can scale based on demand, saving costs and ensuring availability.

These attributes make microservices-based distributed applications flexible and easy to maintain.

Voordelen van microservices

Microservices provide many advantages. They simplify development and project management. Sometimes, they may eliminate the need for separate operations teams since developers can handle operations for the microservices they build. 

Some other benefits of microservices include:

Herstellingsvermogen en foutisolatie

Eén fout is van invloed op de hele toepassing bij monolithische architecturen. Maar microservices zijn onafhankelijk. Eén fout heeft geen invloed op de andere delen van de toepassing.

Agility

Het opdelen van toepassingen in kleinere delen versnelt de ontwikkeling. Het stelt teams in staat om sneller software te bouwen, te testen en te implementeren.

Technologische diversiteit

Microservices stellen ontwikkelaars in staat om de juiste tools en technologieën voor een bepaalde taak te kiezen. Dit verhoogt de efficiëntie en productiviteit.

Verbeterd onderhoud

De mogelijkheid om afzonderlijke componenten te testen maakt het makkelijker om bugs op te sporen en op te lossen zonder dat de hele toepassing offline moet worden gezet.

Herstellingsvermogen en foutisolatie

Eén fout is van invloed op de hele toepassing bij monolithische architecturen. Maar microservices zijn onafhankelijk. Eén fout heeft geen invloed op de andere delen van de toepassing.

Agility

Het opdelen van toepassingen in kleinere delen versnelt de ontwikkeling. Het stelt teams in staat om sneller software te bouwen, te testen en te implementeren.

Technologische diversiteit

Microservices stellen ontwikkelaars in staat om de juiste tools en technologieën voor een bepaalde taak te kiezen. Dit verhoogt de efficiëntie en productiviteit.

Verbeterd onderhoud

De mogelijkheid om afzonderlijke componenten te testen maakt het makkelijker om bugs op te sporen en op te lossen zonder dat de hele toepassing offline moet worden gezet.

Uitdagingen van microservices

Microservices-based architecture has many benefits, but it also comes with challenges. 

One challenge of microservices is that the independent services generate their logs. This is a disadvantage compared to monoliths' centralized logs, which provide a single source of truth for developers and operations teams. Monitoring and infrastructure management are also more complicated since many moving pieces exist. Testing and debugging are challenging because, unlike monoliths, no integrated development environment (IDE) exists.

Atlassian's Compass can help with all these challenges. Compass facilitates collaboration and allows companies to manage the complexities of distributed architectures as they scale. It does this by bringing the disconnected information together in a central, searchable location.

Waar wordt de microservice-architectuur voor gebruikt?

Grote consumentenwebsites maken vaak gebruik van honderden of duizenden microservices. Microservices zijn bijzonder nuttig in de volgende use cases en bedrijfstakken:

  • E-commercesites zoals eBay gebruiken aparte microservices voor winkelwagentjes, mobiele apps en berichtenuitwisseling.
  • Financiële instellingen zoals de Bank of America gebruiken microservices om te communiceren met externe services. Ze worden ook gebruikt voor functies zoals gebruikersautorisaties en het weergeven van transacties.
  • Sociale-mediaplatforms zoals Instagram en Facebook gebruiken microservices om nieuwsfeeds, berichten, meldingen en vriendennetwerken van gebruikers weer te geven.

Beste praktijken voor het beheer van microservices

In de loop der jaren hebben ontwikkelaars tientallen essentiële best practices bedacht voor de ontwikkeling van microservices. Hieronder staan slechts een paar voorbeelden:

  • Het principe van één verantwoordelijkheid (SRP) specificeert dat elke module of microservice maar één functie mag hebben. De continue integratie (CI) van SRP is een methode voor het controleren van de broncode die de kwaliteitscontroles van de code automatiseert voordat ze in een project worden samengevoegd. Hierdoor wordt snelheid mogelijk gemaakt omdat er geen apart QA-proces nodig is. Deze best practice voor DevOps helpt bij de snelheid. CI gaat vooraf aan continue levering (CD), waarbij gebruik wordt gemaakt van geautomatiseerde bouwtools om software klaar te houden voor implementatie.
  • API-gateways vereenvoudigen de communicatie tussen microservices, beheren authenticatie en autorisatie en verhogen de beveiliging. 
  • Asynchrone communicatie tussen microservices behoudt de autonomie en vermindert de afhankelijkheden die de werking van toepassingen zouden kunnen vertragen.  
  • Microservices met versiebeheer zijn van cruciaal belang wanneer ontwikkelaars ingrijpende veranderingen doorvoeren, zoals het verwijderen van een volledige operatie. Deze praktijk maakt overgangen soepeler en verkleint de kans op verstoring van de dienstverlening.  

Atlassian, mogelijk gemaakt door Jira Software, maakt het gemakkelijk voor teams om tools van partners en van Atlassian automatisch te integreren, zodat ze zich kunnen concentreren op het bouwen en uitvoeren van software.

Beheer je microservices-architectuur beter met Compass

Compass is een platform voor ontwikkelaarservaring dat gedistribueerde softwarearchitectuur en samenwerkende teams op één plek samenbrengt. Het biedt een handig overzicht van alle componenten en services waaraan een team werkt. Het bevat ook een catalogus met softwarecomponenten zodat ontwikkelaars gemakkelijk kunnen vinden wat ze zoeken.

Compass maakt eenvoudig componentenbeheer mogelijk, evenals het volgen van eigendom en het monitoren van verbanden. De software houdt ook veranderingen in realtime bij.

Compass integreren in je ontwikkelomgeving is eenvoudig vanwege de aanpasbare gebruikersinterface en de compatibiliteit met interne en externe tools. Ontdek hoe je je microservices-architectuur kunt beheren met Compass en hoe dit losstaande informatie samenbrengt op een verbonden, centrale locatie.

Microservices: Veelgestelde vragen

What tools do people commonly use in microservices?

Bedrijven gebruiken vaak tools voor containerisatie, zoals Kubernetes en Docker. Ze gebruiken ook vaak API-gateways tussen microservices en hun klanten. Deze gateways voeren API-verkeersfuncties uit, zoals authenticatie, toegangscontrole en taakverdeling.

Hoe verschillen microservices van een monolithische architectuur?

Monolithische structuren zijn grote codebases die als één systeem functioneren. Ze hebben downtime van het systeem nodig voor updates en foutopsporing. Microservices-architecturen zijn gedistribueerde toepassingen met kleinere, onafhankelijke delen van de functionaliteit. Ontwikkelaars kunnen deze modules upgraden en verbeteren en fouten opsporen zonder dat ze de hele toepassing offline moeten zetten. Dit vereenvoudigt de schaalbaarheid en bevordert de ontwikkelingssnelheid.

Welke invloed hebben microservices op DevOps?

Wie DevOps begrijpt, weet dat continue integratie en continue levering (de DevOps CI/CD-pipeline) de steunpilaren zijn van de DevOps-methodologieën. Het modulaire karakter van microservices past perfect bij deze aanpak. Microservices stellen ontwikkelaars in staat om snel kleine, frequente releases te maken, te testen en te implementeren.

Word lid van de Atlassian Community voor meer artikelen en discussies over microservices.

Voor jou aanbevolen

Compass-community

Tutorial: Een component aanmaken

Ga gratis aan de slag met Compass